#pragma once

#include "StarlabPlugin.h"
#include "Model.h"
#include "RichParameterSet.h"
#include "Callbacks.h"

/** 
 * @brief Plugin interface to perform I/O of project files
 * @ingroup StarlabPluginInterfaces 
 * @todo reegineer following MeshLab's structure
 */
class RenderPlugin : public StarlabPlugin{
public:
    /// @todo 
    virtual void Init(Document* /*md*/, QAction* /*shader*/, QGLWidget* /*parent*/) {}
    /// @todo 
    virtual void Render(Document* /*md*/, QAction* /*shader*/, QGLWidget* /*parent*/) = 0;
    /// @todo 
    virtual void Finalize(Document* /*md*/, QAction* /*shader*/, QGLWidget* /*parent*/){}
    /// @todo 
    virtual bool isSupported(QAction* /*shader*/){ return true; }
};

Q_DECLARE_INTERFACE(RenderPlugin, "starlab.RenderPlugin/1.0")



